package cmo.yxqz.freemarker.controller;


import cmo.yxqz.freemarker.model.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.client.RestTemplate;

import java.util.*;

/**
 * @author 鱼香茄子
 * @data 2021/10/25
 */


@RequestMapping("/freemarker")
@Controller
public class FreemarkerController {

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("/banner")
    public String testBanner(Map<String, Object> map) {

//        使用restempalte获取轮播图（服务器中获取）据 模型数据
        ResponseEntity<Map> forEntity = restTemplate.getForEntity("http://localhost:61001/cms/config/getmodel/5a791725dd573c3574ee333f", Map.class);
        Map body = forEntity.getBody();
//        设置模型数据
        map.putAll(body);
        return "index_banner";

    }


    //    课程静态化
    @GetMapping("/course")
    public String testCourse(Map<String, Object> map) {

//        使用restempalte获取课程的数据（MySQL中获取）据 模型数据
//        请求的是http://localhost:31200/swagger-ui.html#!/course45controller/courseviewUsingGET
        ResponseEntity<Map> forEntity = restTemplate.getForEntity("http://localhost:31200/course/courseview/4028858162e0bc0a0162e0bfdf1a0000", Map.class);
        Map body = forEntity.getBody();
//        设置模型数据
        map.putAll(body);
        return "course";
    }


    @GetMapping("/test1")
    public String test1(Map<String, Object> map) {
//        制造数据，map存储
        map.put("name", "鱼香茄子");

        //向数据模型放数据
        Student stu1 = new Student();
        stu1.setName("小明");
        stu1.setAge(18);
        stu1.setMoney(1000.86f);
        stu1.setBirthday(new Date());
        Student stu2 = new Student();
        stu2.setName("小红");
        stu2.setMoney(200.1f);
        stu2.setAge(19);
// stu2.setBirthday(new Date());
        List<Student> friends = new ArrayList<>();
        friends.add(stu1);
        stu2.setFriends(friends);
        stu2.setBestFriend(stu1);
        List<Student> stus = new ArrayList<>();
        stus.add(stu1);
        stus.add(stu2);


//向数据模型放数据
        map.put("stus", stus);
//准备map数据
        HashMap<String, Student> stuMap = new HashMap<>();
        stuMap.put("stu1", stu1);
        stuMap.put("stu2", stu2);
//向数据模型放数据
        map.put("stu1", stu1);
//向数据模型放数据
        map.put("stuMap", stuMap);


//返回模板文件名称
//        返回freemark模板的位置，基于resource下的templates目录
        return "test1";
    }


}
